メインコンテンツへスキップ
  1. ブログ投稿/

Python - pandas loc vs iloc

·1 分

この投稿は、Pythonの pandas ライブラリを活用してDataFrameを扱う際に必要な .loc().iloc() のそれぞれの特徴と違いを説明するために作成されました。

まず、説明のために seaborn を活用して例のデータ(iris)を取得しましょう。

>>> import seaborn as sns
>>> iris = sns.load_dataset('iris')
>>> iris.head()

Alt text
irisデータの最初の5行

1. loc #

locはラベル(Label)を基にデータを選択するメソッドです。行と列の名前を使用してデータにアクセスします。つまり、行と列の名前を明示的に指定してデータを選択します。

# 列名が'species'で、その値が'virginica'であるデータを選択
>>> iris.loc[iris['species'] == 'virginica']

Alt text
speciesの中で’virginica’の値を持つ最初の5行

2. iloc #

ilocは整数(Integer)基準のインデックスを使用してデータを選択するメソッドです。行と列の整数の位置(インデックス)を利用してデータにアクセスします。つまり、データの位置を整数で明示して選択します。

# 最初の行と2番目の列にあるデータを選択
>>> iris.iloc[0, 1]
3.5

Alt text
最初の行と2番目の列にある’sepal_width’のデータ

3. locとilocの違い #

  • インデックスのタイプ:

    locはラベル(Label)を使用するため、行と列の名前が文字列や他のデータタイプである可能性があります。

    ilocは整数(Integer)を使用するため、行と列のインデックスは整数である必要があります。

  • 使用方法:

    locは明示的にラベルを使用してデータを選択することに重点を置きます。

    ilocは整数位置(インデックス)を使用してデータを選択することに重点を置きます。

  • 例:

    locの例: df.loc[‘A’, ‘column_name’]

    ilocの例: df.iloc[0, 1]

どのメソッドを使用するかは、データフレームの構造やユーザーの目的によって異なります。 locはラベルが明確に定義されている場合に有用であり、 ilocは整数基準のインデックスが使用される場合に有用です。